//
//  AppDelegate.swift
//  新浪微博
//
//  Created by 饶鹏伟 on 16/4/6.
//  Copyright © 2016年 饶鹏伟. All rights reserved.
//

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
        
        setNavBarThemeColor()
        
        //调用通知
        registerNotification()
        
        //设置主窗口的大小
        window=UIWindow(frame: UIScreen.mainScreen().bounds)
        //设置主窗口的跟控制器
        window?.rootViewController=defaultRootViewController()
        
        //设置背景色
        window?.backgroundColor=UIColor.whiteColor()
        //让窗口可视化】
        window?.makeKeyAndVisible()
        
        return true
    }
    
    //根据用户登录状态 来选择对应的根视图控制器
    private func defaultRootViewController() -> UIViewController{
        
        return HMUserAccountViewModel.sharedAccountViewModel.userLogin ? HMWelcomeViewController() : HMMainViewController()
        
    }
    
    private func setNavBarThemeColor() {
        //设置全局颜色
        //全局颜色的设置 必须在控件实例化之前
        UINavigationBar.appearance().tintColor = UIColor.orangeColor()
    }
    
    
    //注册通知
    private func registerNotification(){
        
        // object: 监听那个对象发出的通知  一般设置为 nil 表示监听任意对象发出的通知
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "changeRootViewController:", name: HMSwitchRootViewController, object: nil)
        
        
        
    }
    
    
    //通知监听的方法
    @objc private func changeRootViewController(n: NSNotification){
        
        //print(n)
        
        //切换根视图控制器
        if n.object != nil{
           
            //欢迎界面发出的通知
            window?.rootViewController=HMMainViewController()
            
        } else{
            
            //从授权页发出的通知
        
            window?.rootViewController = HMWelcomeViewController()

            
        }
    
    }
    
    
    //移除通知 放在这里没什么意义 但是写上 编码规范而已
    deinit {
        NSNotificationCenter.defaultCenter().removeObserver(self)
    }

}

